The _X_m_Q_T_t_r_a_n_s_f_e_r trait is installed on any widget that can
be a source or destination for data transfer. The usual
means of transferring data is the conversion of a selection.
The selections supported by Motif are _P_R_I_M_A_R_Y, _S_E_C_O_N_D_A_R_Y,
_C_L_I_P_B_O_A_R_D, and ____MMMMOOOOTTTTIIIIFFFF____DDDDRRRROOOOPPPP (for drag and drop operations).
A widget can be the source or destination for zero or more
of these selections.
If your widget is to be a source of data in a transfer, then
your widget must supply a ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc trait method. This
trait method is responsible for converting data to a
requested target. If your widget is to be a data transfer
destination, then your widget must supply a ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnPPPPrrrroooocccc
trait method and can optionally supply a
ddddeeeessssttttiiiinnnnaaaattttiiiinnnnooooPPPPrrrreeeeHHHHooooooookkkkPPPPrrrroooocccc trait method. The ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnPPPPrrrroooocccc
trait method is responsible for requesting target(s) from
the source and for providing the name of a transfer
procedure to handle the returned data. The
ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnPPPPrrrreeeeHHHHooooooookkkkPPPPrrrroooocccc trait method is used to prepare data
for the ddddeeeessssttttiiiinnnnaaaattttiiiioooonnnnPPPPrrrroooocccc method.
The standard Motif widgets XXXXmmmmCCCCoooonnnnttttaaaaiiiinnnneeeerrrr, XXXXmmmmLLLLaaaabbbbeeeellll,
XXXXmmmmLLLLaaaabbbbeeeellllGGGGaaaaddddggggeeeetttt, XXXXmmmmLLLLiiiisssstttt, XXXXmmmmSSSSccccaaaalllleeee, XXXXmmmmTTTTeeeexxxxtttt, and XXXXmmmmTTTTeeeexxxxttttFFFFiiiieeeelllldddd all
hold this trait. XXXXmmmmLLLLaaaabbbbeeeellll, XXXXmmmmLLLLaaaabbbbeeeellllGGGGaaaaddddggggeeeetttt, XXXXmmmmLLLLiiiisssstttt, and
XXXXmmmmSSSSccccaaaalllleeeeprovide only ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc methods. XXXXmmmmCCCCoooonnnnttttaaaaiiiinnnneeeerrrr,
XXXXmmmmTTTTeeeexxxxtttt, and XXXXmmmmTTTTeeeexxxxttttFFFFiiiieeeellllddddprovide both ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc and
The ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc method is invoked when the widget is the
source for a data transfer operation. This method converts
a selection to a requested target. The _c_a_l_l__d_a_t_a argument
is a pointer to an XXXXmmmmCCCCoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt structure. The
method typically examines the _s_e_l_e_c_t_i_o_n and _t_a_r_g_e_tmembers of
this structure. It returns the converted data in the _v_a_l_u_e
member and returns an indicator of the conversion status in
the _s_t_a_t_u_s member.
When the _t_a_r_g_e_t member of the structure is _T_A_R_G_E_T_S, the
ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc method usually provides data by calling
XXXXmmmmeeeeSSSSttttaaaannnnddddaaaarrrrddddTTTTaaaarrrrggggeeeettttssss and then adding any targets to which the
ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc method converts data. The method can call
XXXXmmmmeeeeSSSSttttaaaannnnddddaaaarrrrddddCCCCoooonnnnvvvveeeerrrrtttt to convert data to any of the standard
targets.
The ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc method is invoked after any
XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk procedures are called. The callback
procedures can perform all or part of the conversion
themselves, refuse the conversion, or let the ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc
method handle the conversion. If the callback procedures
perform the complete conversion or refuse the conversion,
the ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc method is not called. More specifically,
the ccccoooonnnnvvvveeeerrrrttttPPPPrrrroooocccc method is not called if, after all callback
procedures have returned, the value of the _s_t_a_t_u_smember of
the XXXXmmmmCCCCoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt is other than XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT
or XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____MMMMEEEERRRRGGGGEEEE.
_w_i_d_g_e_t Specifies the widget that is asked to convert the
data.
_c_l_i_e_n_t__d_a_t_a
This argument is currently unused. The value is
always _N_U_L_L.
_c_a_l_l__d_a_t_a Specifies a pointer to an XXXXmmmmCCCCoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkkSSSSttttrrrruuuucccctttt
quantities. Possible values are 0 (when _p_a_r_m is
_N_U_L_L), 8, 16, and 32.
_p_a_r_m__l_e_n_g_t_h
Specifies the number of elements of data in _p_a_r_m,
where each element has the number of bits
specified by _p_a_r_m__f_o_r_m_a_t. When _p_a_r_m is _N_U_L_L, the
value is 0.
_p_a_r_m__t_y_p_e Specifies the parameter type of _p_a_r_m.
_s_t_a_t_u_s An IIIINNNN////OOOOUUUUTTTT member that specifies the status of the
conversion. The initial value set by the toolkit
is XXXXmmmmCCCCOOOONNNNVVVVEEEERRRRTTTT____DDDDEEEEFFFFAAAAUUUULLLLTTTT, but an XXXXmmmmNNNNccccoooonnnnvvvveeeerrrrttttCCCCaaaallllllllbbbbaaaacccckkkk
XXXXmmmmeeeeSSSSttttaaaannnnddddaaaarrrrddddCCCCoooonnnnvvvveeeerrrrtttt(3), XXXXmmmmeeeeSSSSttttaaaannnnddddaaaarrrrddddTTTTaaaarrrrggggeeeettttssss(3), and